查看原文
其他

看雪CTF.TSRC 2018 团队赛 第十五题『 密码风云』 解题思路

小雪 看雪学院 2019-05-25




最新赛况战况一览


2018年的最后一天,看雪CTF.TSRC 2018 最后一题画上句号。作为本次比赛的决胜局,无团队攻破,为本题添上些许神秘色彩。

最后一题过后,攻击方比赛排名继续保持如下:

感谢各位选手一个月以来的优秀表现,最终比赛结果将是如何?

接下来将由比赛组委会对所有比赛成绩进行复盘、审校,

成绩将于1月2日揭晓!




第十五题 点评


crownless:

“密码风云”此题涉及梅森素数、Hash算法、传统加密、对称算法、ECC公钥密码,可以说是密码学的大杂烩,对没有相关知识积累的逆向者造成了极大的考验,创造了本届看雪CTF第一题无人攻破的历史。



第十五题 出题团队简介


出题团队:BlackChamber  

 

成员cnbragon,密码学和逆向爱好者,非常喜欢分析研究密码学算法在各种软件和协议中的应用,希望能和CTF比赛中的密码学爱好者多交流





第十五题 设计思路


由看雪论坛  cnbragon 原创


说明:

其中Rotor加密可从相关的Python模块源码中获取,Skipjack算法对其F-Table进行了变换。

整个题目涉及梅森素数、Hash算法、传统加密、对称算法、ECC公钥密码,总体思路如下:

1. 前面两个数都是梅森素数,即p是素数,2^p -1也是素数,对于10进制3位数,只有两个值。

这里为了降低难度,给出线索,在尝试出错10次以后,增加判断是否是素数的逻辑,便于判断这是梅森素数公式。

2. 计算两个梅森素数的和,并且计算转化为字符串之后的SM3哈希值,并简单计算Hash值的XOR校验值,如果校验通过,则用该Hash值作为Rotor算法的Key。

3.对输入的Serial中间的24个字符数据进行解密,得到字符串cryptography,取其前10个字符,作为接下来Skipjack算法的密钥,对程序中预存的24个字节进行解密,解密后的值为pediyctf2018.by.cnbragon,用于后面ECNR步骤的消息计算。这里对Skipjack的F-Table进行了变换。

4.使用同样的密钥,对serial的后面32个字符进行Skipjack解密,解密后的结果分别作为签名c和签名d。

5.将字符串pediyctf2018.by.cnbragon以64位作为单位,进行xor,结果是ECNR的真正明文message。

6.对签名c和签名d做ECNR签名验证,如果验证通过,为了保证serial的惟一并且进一步降低难度,增加了额外的加法校验。


题目源码请点击下方“阅读原文”查看哦!






热门图书推荐:

立即购买!


合作伙伴 



腾讯安全应急响应中心 

TSRC,腾讯安全的先头兵,肩负腾讯公司安全漏洞、黑客入侵的发现和处理工作。这是个没有硝烟的战场,我们与两万多名安全专家并肩而行,捍卫全球亿万用户的信息、财产安全。一直以来,我们怀揣感恩之心,努力构建开放的TSRC交流平台,回馈安全社区。未来,我们将继续携手安全行业精英,探索互联网安全新方向,建设互联网生态安全,共铸“互联网+”新时代。







- End -


公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com



↙点击此处,查看本题源码!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存